Next | Prev | Up | Top | Contents | Index

GIO Driver Interrupt Handler

A GIO driver must contain an interrupt entry point. It does not have to be named pfxintr() because it is registered using the giosetvector() function.

When the device generates an interrupt, the general GIO interrupt handler calls your driver's registered interrupt routine and passes it the argument that was specified to setgiovector() as the argument. This is typically a unit number, or the address of a device-specific information structure.

Within the interrupt routine, the driver must wake up the sleeping upper-half process, if one is waiting on the transfer to complete. In a block device driver, the interrupt routine calls iodone() to indicate that a block type I/O transfer for the buffer is complete (see "Waiting for Block I/O to Complete").


Next | Prev | Up | Top | Contents | Index